
In this challenge, a program written in assembly is provided to decrypt an encoded string using an XOR operation with a fixed value of 0x12. The program begins by setting the address of the encoded string and the location where the decoded text will be stored. Then, it applies the XOR operation to each byte of the string using a loop, which results in the decryption of the string. After decryption, the program prints the decoded string to the screen using the sys_write system call, allowing the user to view the decoded message. Finally, the program terminates using the sys_exit system call to ensure proper execution termination.
assembly.asm
asm
section .data
msg db 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x6E, 0x65, 0x74, 0x73, 0x69, 0x73, 0x69, 0x74, 0x63, 0x6F
db 0x6D, 0x7B, 0x49, 0x5F, 0x4C, 0x4F, 0x56, 0x45, 0x5F, 0x41, 0x53, 0x53, 0x4D, 0x45, 0x42, 0x4C
db 0x59, 0x7D, 0
section .bss
decoded resb 33
section .text
global _start
_start:
mov esi, encoded
mov edi, decoded
mov ecx, encoded_len
decode_loop:
lodsb
xor al, 0x12
stosb
loop decode_loop
mov eax, 4
mov ebx, 1
mov ecx, decoded
mov edx, encoded_len
int 0x80
mov eax, 1
xor ebx, ebx
int 0x80What we need to do is take the encrypted data and decrypt it.

Flag : securinetsisitcom{I_LOVE_ASSMEBLY}